package com.cg.service;

import com.cg.dto.InterviewSessionDTO;
import com.cg.dto.InterviewMessageDTO;
import com.cg.dto.InterviewEvaluationDTO;
import java.util.List;

/**
 * 面试会话管理服务接口
 */
public interface InterviewSessionService {
    
    /**
     * 创建面试会话
     */
    InterviewSessionDTO createSession(Long userId, Long interviewId, String sessionTitle, 
                                   String interviewerType, String topics, 
                                   Integer classicCount, Integer projectCount);
    
    /**
     * 根据ID获取面试会话
     */
    InterviewSessionDTO getSessionById(Long id);
    
    /**
     * 根据用户ID获取面试会话列表
     */
    List<InterviewSessionDTO> getUserSessions(Long userId);
    
    /**
     * 根据面试ID获取面试会话
     */
    InterviewSessionDTO getSessionByInterviewId(Long interviewId);
    
    /**
     * 更新面试会话状态
     */
    void updateSessionStatus(Long id, String status);
    
    /**
     * 删除面试会话
     */
    void deleteSession(Long id, Long userId);
    
    /**
     * 添加用户消息
     */
    void addUserMessage(Long sessionId, String content);
    
    /**
     * 添加面试官消息
     */
    void addAssistantMessage(Long sessionId, String content);
    
    /**
     * 获取会话的所有消息
     */
    List<InterviewMessageDTO> getSessionMessages(Long sessionId);
    
    /**
     * 保存面试评估结果
     */
    void saveEvaluation(Long sessionId, String overallScore, String strengths, 
                       String weaknesses, String suggestions);
    
    /**
     * 根据会话ID获取评估结果
     */
    InterviewEvaluationDTO getEvaluationBySessionId(Long sessionId);
}
